package cn.calin.day05.demo26;

import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;

/*
类object 是层次结构的根（最顶层）类。每个类都使用object作为超（父）类
所有对象（包括数组）都实现了这个类的方法
* */
public class Demo01ToString {
    public static void main(String[] args) {
        /*
            Person 类继承了object类，所以可以object类中的toString方法
        * */
        Person person=new Person("张山",18);
        String s=person.toString();
        System.out.println(s);//cn.calin.day05.demo26.Person@776ec8df
        System.out.println(person);//直接打印对象的名字，其实就是调用对象的toString方法
        //直接打印person=person.toString();

        //看一个类是否重写了toString方法，直接打印这个类对应对象的名字即可
            //如果没有重写toString方法那么打印的就是对象的地址值(默认)
            //如果重写toString方法就按照重写的方式打印
        Random r=new Random();
        System.out.println(r);//java.util.Random@7ef20235
        Scanner sc=new Scanner(System.in);
        System.out.println(sc);//java.util.Scanner[delimiters=\p{javaWhitespace}+][position=0][match valid=false][need input=false][source closed=false][skipped=false][group separator=\x{2c}][decimal separator=\x{2e}][positive prefix=][negative prefix=\Q-\E][positive suffix=][negative suffix=][NaN string=\QNaN\E][infinity string=\Q∞\E]

        ArrayList<Integer> list=new ArrayList<>();
        list.add(1);
        list.add(2);
        System.out.println(list);//[1, 2]说明重写了toString方法
    }
}
